/* 
 * Given an array and a value, remove all instances of that value in place and return the new length
 * the order of elements can be changed. it doesn't matter what you leave beyond the new length
 */

#include "../../func.h"

int removeElement(vector<int> &nums, int target)
{
    return distance(nums.begin(), remove(nums.begin(), nums.end(), target));
}

int removeElement2(vector<int> &nums, int target)
{
    int index = 0;
    for (int i = 0; i < nums.size(); ++i)
    {
        if (nums[i] != target)
        {
            nums[index++] = nums[i];
        }
    }
    return index;
}